<?php

/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */

/**
 * Description of XMLtoMONGO
 *
 * @author Alexander
 */
class XMLtoMONGO {
    private $usuario;
    private $codigo;
    private $versao_modulo;
    private $data;
    private $cabecalho_pagina;
    private $meta_pagina;
    private $serializacao_pagina;
    private $link_pagina;
    private $robots_pagina;
    function converter($link){
        //$contador referente à página
        //$contador1 referente ao meta, serializacao, links, robots
        $contador = 0;
        $contador1 = 0;
        ini_set('default_charset', 'UTF-8');
        $xml = simplexml_load_file($link);
        $this->usuario = $xml->usuario;
        //Codigo dividido em array, para $codigo[0], $codigo[1], $codigo[2], $codigo[3]
        $this->codigo = str_split($xml->codigo);
        $this->versao_modulo = $xml->versaoModulo;
        $this->data['dia'] = $xml->data->dia;
        $this->data['mes'] = $xml->data->mes;
        $this->data['ano'] = $xml->data->ano;
        $this->data['hora'] = $xml->data->hora;
        $this->data['minuto'] = $xml->data->minuto;
        $this->data['segundo'] = $xml->data->segundo;
        //ForEach da Pagina, lida da seguinte forma:
        //cabecalho_pagina[contador referente a pagina][valor do cabeçalho]
        foreach($xml->paginas->pagina as $pagina){
            $this->cabecalho_pagina[$contador]['endereco'] = $pagina->cabecalhoPagina->endereco;
            $this->cabecalho_pagina[$contador]['raiz'] = $pagina->cabecalhoPagina->raiz;
            $this->cabecalho_pagina[$contador]['charset'] = $pagina->cabecalhoPagina->charset;
            $this->cabecalho_pagina[$contador]['linguagem'] = $pagina->cabecalhoPagina->linguagem;
            $this->cabecalho_pagina[$contador]['httpCode'] = $pagina->cabecalhoPagina->httpCode;
            $this->cabecalho_pagina[$contador]['qtdPalavras'] = $pagina->cabecalhoPagina->qtdPalavras;
            $this->cabecalho_pagina[$contador]['qtdLinks'] = $pagina->cabecalhoPagina->qtdLinks;
            $this->cabecalho_pagina[$contador]['qtdMetas'] = $pagina->cabecalhoPagina->qtdMetas;
            $this->cabecalho_pagina[$contador]['qtdRobots'] = $pagina->cabecalhoPagina->qtdRobots;
            //ForEach dos metas da pagina, lidos da seguinte forma:
            //meta_pagina[contador referente a pagina][contador referente ao meta][valor do meta deseja
            if($this->codigo[0] = 1){
                foreach($pagina->metas->meta as $meta){
                    $this->meta_pagina[$contador][$contador1]['posicaoMet'] = $meta->posicaoMet;
                    $this->meta_pagina[$contador][$contador1]['chaveMet'] = $meta->chaveMet;
                    $this->meta_pagina[$contador][$contador1]['valorMet'] = $meta->valorMet;
                    $contador1 = $contador1 + 1;
                }
                $contador1 = 0;
            }
            
            //ForEach das serializacões da pagina, lidas da seguinte forma:
            //serializacao_pagina[contador referente a pagina][contador referente a serializacao][valor da serializacao desejada]
            if($this->codigo[1] = 1){
                foreach($pagina->serializacoes->serializacao as $serializacao){
                    $this->serializacao_pagina[$contador][$contador1]['posicaoSer'] = $serializacao->posicaoSer;
                    $this->serializacao_pagina[$contador][$contador1]['palavraSer'] = $serializacao->palavraSer;
                    $this->serializacao_pagina[$contador][$contador1]['caminhoSer'] = $serializacao->caminhoSer;
                    $contador1 = $contador1 + 1;
                }
                $contador1 = 0;
            }
            //ForEach dos links da pagina, lidas da seguinte forma:
            //link_pagina[contador referente a pagina][contador referente ao link][valor do link desejado]
            if($this->codigo[2] = 1){
                foreach($pagina->links->link as $link){
                    $this->link_pagina[$contador][$contador1]['aparicaoLin'] = $link->aparicaoLin;
                    $this->link_pagina[$contador][$contador1]['enderecoLin'] = $link->enderecoLin;
                    $contador1 = $contador1 + 1;
                }
                $contador1 = 0;
            }
            //ForEach dos robots da pagina, lidas da seguinte forma:
            //robots_pagina[contador referente a pagina][contador referente ao robo];
            if($this->codigo[3] = 1){
                foreach($pagina->robots->robo as $robo){
                    $this->robots_pagina[$contador][$contador1] = $robo;
                    $contador1 = $contador1 + 1;
                }
                $contador = $contador + 1;
            }
            
        }
        
     
        
    }
    //$m_usuario = nome do usuario que envia
    //$m_versao_modulo = versão do modulo utilizada
    //$m_data = data em que foi feito, deve conter $m_data['dia'], $m_data['mes'], $m_data['ano'], $m_data['hora'], $m_data['minuto'], $m_data['segundo']
    //$m_pagina = aqui vai as tags paginas $m_pagina[pagina em questao, 0, 1, 2 e etc]['cabecalho']['endereco' ou 'raiz']
    function gerar($m_usuario, $m_codigo, $m_versao_modulo, $m_data, $m_pagina){
        $dom = new DOMDocument("1.0", "ISO-8859-1");
        $dom->preserveWhiteSpace = false;
        $dom->formatOutput = true;
        //Criando documento
        $root = $dom->createElement("documento");
        //Criando item usuário e colocando atributo
        $usuario = $dom->createElement("usuario", $m_usuario);
        //Criando item código e colocando atributo
        $codigo = $dom->createElement("codigo", $m_codigo);
        //Criando item versão_modulo e colocando atributo
        $versao_modulo = $dom->createElement("versaoModulo", $m_versao_modulo);
        //Criando item data com dia, mes, ano, hora, minuto e segundo
        $data = $dom->createElement("data");
        $dia = $dom->createElement("dia", $m_data['dia']);
        $mes = $dom->createElement("mes", $m_data['mes']);
        $ano = $dom->createElement("ano", $m_data['ano']);
        $hora = $dom->createElement("hora", $m_data['hora']);
        $minuto = $dom->createElement("minuto", $m_data['minuto']);
        $segundo = $dom->createElement("segundo", $m_data['segundo']);  
        //Adicionando a hierarquia
        $data->appendChild($dia);
        $data->appendChild($mes);
        $data->appendChild($ano);
        $data->appendChild($hora);
        $data->appendChild($minuto);
        $data->appendChild($segundo);
        $root->appendChild($usuario);
        $root->appendChild($codigo);
        $root->appendChild($versao_modulo);
        $root->appendChild($data);
        //Criando item paginas
        $paginas = $dom->createElement("paginas");
        //Rotina para adicionar páginas
        for($i = 0; $i<count($m_pagina); $i++){
            //Criando página, com cabeçalho e seus respectivos itens com atributos
            $pagina = $dom->createElement("pagina");
            $cabecalho = $dom->createElement("cabecalhoPagina");
            $endereco = $dom->createElement("endereco", $m_pagina[$i]['cabecalho']['endereco']);
            $raiz = $dom->createElement("raiz", $m_pagina[$i]['cabecalho']['raiz']);
            $pagina->appendChild($cabecalho);
            $cabecalho->appendChild($endereco);
            $cabecalho->appendChild($raiz);
            $paginas->appendChild($pagina);
        }
        //Adicionando hierarquia final
        $root->appendChild($paginas);
        $dom->appendChild($root);
        $dom->save("Modulo_teste.xml");
        
        
        
        
    }
    
    function get_usuario(){
        return $this->usuario;
    }
    function get_codigo(){
        return $this->codigo;
    }
    function get_versao_modulo(){
        return $this->versao_modulo;
    }
    function get_data(){
        return $this->data;
    }
    function get_cabecalho_pagina(){
        return $this->cabecalho_pagina;
    }
    function get_meta_pagina(){
        return $this->meta_pagina;
    }
    function get_serializacao_pagina(){
        return $this->serializacao_pagina;
    }
    function get_link_pagina(){
        return $this->link_pagina;
    }
    function get_robots_pagina(){
        return $this->robots_pagina;
    }
    function set_usuario($usuario){
        $this->usuario = $usuario;
    }
    function set_codigo($codigo){
        $this->codigo = $codigo;
    }
    function set_versao_modulo($versao_modulo){
        $this->versao_modulo = $versao_modulo;
    }
    function set_data($data){
        $this->data = $data;
    }
    function set_cabecalho_pagina($cabecalho_pagina){
        $this->cabecalho_pagina = $cabecalho_pagina;
    }
    function set_meta_pagina($meta_pagina){
        $this->meta_pagina = $meta_pagina;
    }
    function set_serializacao_pagina($serializacao_pagina){
        $this->serializacao_pagina = $serializacao_pagina;
    }
    function set_link_pagina($link_pagina){
        $this->link_pagina = $link_pagina;
    }
    function set_robots_pagina($robots_pagina){
        $this->robots_pagina = $robots_pagina;
    }
}
